In order to configure a network, a network administrator may specify a declarative requirement of a desired network configuration. For example, the network administrator may specify a declarative requirement of what the final network configuration should be rather than the mechanics of how to accomplish the network configuration. Often these declarative requirements must include very specific types of requirements. However, in many instances, the network administrator may desire flexibility in being able to specify different levels and types of declarative requirements rather than the traditional single type of declarative requirement understood by a traditional system. For example, for certain configurations, the network administrator may want to specify high level declarative requirements while for other configuration instances, the network administrator may want to specify lower and more specific declarative requirements. In other cases, the network administrator may want to mix different types of desired requirements by specifying declarative requirements at a high level along with specific requirements for specific aspects of the declarative requirements. Therefore, there exists a need for a more flexible way to specify declarative requirements.